

console.time('aa')
console.time('bb')

// 下面这段代码是什么意思? 我们一般说:1秒后,执行setTimeout里面的函数
/*
但是这种说话并不严谨,正确的解释是:3秒后,setTimeout中的函数会被推入event queue,而event queue(事件队列)里的任务,只有在主线程空闲时才会执行.

所以只有满足 ① 三秒后, ② 主线程空闲,3秒后才会执行该函数
如果主线程执行内容很多,执行时间超过了3秒,比如执行了10秒,那么这个函数只有在10秒后执行了

作者：灬劣徒
链接：https://www.jianshu.com/p/9dd4427f540e
来源：简书
著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。
 */
setTimeout(() => {
	console.log('执行代码');
	console.timeEnd('bb')
},1000)


var ret = []
for (var i = 0; i < 5000; i++) {
	ret.push(i) && ret.join()
}


function sleep(ms) {
    var start = Date.now()
    while(Date.now() - start <= ms ) ; 
}

console.log('--------- 执行结束了--------------\n')


console.timeEnd('aa')

sleep(1000)
